package com.lpb.spring.lpbspring.ioc;

import java.util.List;
import java.util.Set;

/**
 * @ClassName AliasRegistry
 * @Description TODO
 * @date 2022/11/30 00:03
 * @Version 1.0
 * @authoe linpengbo
 */
public interface AliasRegistry {

    /**注册别名
     * @param name
     * @param alias
     * @throws Exception
     */
    void registerAlias(String name,String alias)throws Exception;

    /**移除别名
     * @param alias
     * @throws Exception
     */
    void removeAlias(String alias)throws Exception;

    /**判断是否是别名
     * @param name
     * @return
     * @throws Exception
     */
    boolean isAlias(String name)throws Exception;

    /**根据别名获取真实名称
     * @param name
     * @return
     * @throws Exception
     */
    String getOriginalName(String name)throws Exception;

    /**获取所有别名
     * @param name
     * @return
     * @throws Exception
     */
    Set<String> getAlias(String name)throws Exception;
}
